The subject of present disclosure relates to provisioning of resources and service environments (SEs) required for IT service offerings, and in more particular to an accelerated provisioning of such resources and SEs.
In the traditional outsourcing business the customers who want to concentrate on their core business hand over their IT business or at least parts of it to service providers who run the IT business for several customers. For each outsourced IT business of a specific customer the service provider has to provision a specific SE. The term provisioning of a specific SE as used in the present patent application means the creation of all resources needed for such an SE, how to manage those resources in order to fulfill the conditions specified for example in an agreement or the defined IT service offering, how to handle situations like resource shortages or resource over-provisioning, and the appropriate assigned resource management actions like configuring or installing of said resources. The provisioning is accomplished by using a “provisioning system” that provides function components necessary to accomplish such a provisioning. Each IT component within the specific SE represents a so-called resource.
Prior art provisioning systems create and manage multiple SEs on a shared infrastructure. The infrastructure consists of static free pools of hardware resources such as servers and storage, network resources such as virtual local area networks (VLANs), switches, and, firewalls, and software resources such as licenses. The SEs that the provisioning system creates and manages may pertain to a variety of domains including e-business services, life-science applications, and on-line gaming. The provisioning infrastructure ensures smooth operation of the SE instances by dynamically reconfiguring the infrastructure to adjust resource allocation to the SEs.
Provisioning system and the SEs they manage differ in the types of resources used, the topology of the network connecting them, the services that are offered, and the business and operational constraints that govern their operations.
The provisioning system operates on resources types or parts. Resource types may be basic resource types or aggregated resource types. An aggregated resource type is a logical resource that is defined as a federation of other related resources (represented by other parts). An example of an aggregate resource type, which is represented in a parts catalog, may be a WebSite which federates the following resources: loadBalancer, frontendVLAN, backendVLAN, WebServerGroup, database, firewall. The aggregate resource definition may also include a set of relationships needed to be satisfied, e.g. a use relationship between the WebServerGroup resource and the database resource.
The federated resources can be also aggregated resources and/or basic resources. The expansion of an aggregated resource to its federated resources is a recursive process and results in a tree structure termed topology tree whose nodes are the resource types, the descendants of every node are the resources it federates and the leaves of the tree are basic resources for which RMs exist.
The structure/definition of an SE can also be represented as an aggregated resource. A typical prior art provisioning system 10 is shown in FIG. 1. The provisioning system normally consists of resource managers (RMs) 60, resource services (RSs), a parts catalog (PC) 40, a planner component (PL) 20, and a runtime engine (RE) 30.
The resource managers (RMs) encapsulate logic to provision and manage a particular type of basic resource. Resources can be physical (e.g., an xSeries server) or virtual (e.g., a logical partition (LPAR) on a zSeries server). A resource may be allocated to a service environment or unallocated (free). Free basic resources (that are not virtual) are kept in a logical structure called a free pool 50. An important function of the RM is managing the free pool, including tracking availability of resources and selecting resources for allocation to a service environment. In some cases the RMs actually create the resource. For example, an LPAR RM may create an LPAR by configuring a zSeries machine.
Resource services (RSs) encapsulate configuration operations that need to be performed on a single resource or a set of resources. Such configuration operations may include switch configuration, installation of software, etc.
The parts catalog includes descriptions of resources and capabilities in the form of XML definitions termed parts. Parts can represent basic resources for which an RM exists or aggregated resources previously defined. Parts may reference other parts, for example, a part for an aggregated resource references the parts for its federated resources. SEs are also represented as aggregated resources for which parts exist in the catalog.
A planner component is used to generate, given an SE definition, a set of automation procedures and instructions, termed plans, that include invocations of operations on RMs and RSs, and that are used in order to provision and manage the SE.
Specifically the structure of the SE is defined as an aggregated resource; from it, the following plans are created: (1) plans to provision and de-provision (destroy) the SE; and (2) plans to change the capacity of an SE by changing the number of instances of each of the federated resources designated as “variable” the definition of the SE.
A runtime engine (RE) is used to execute plans generated by the planner upon an explicit user request (e.g., a subscription to an SE triggers its provisioning), or upon an internal system event (e.g., a high load event can trigger adding Web servers to a Web site SE).
The process of creation of an SE, or changing its capacity, may take a significant time for the following reasons:
1. Limited or no control over the time it takes to perform manual operations.
2. Limited or no control over the time it takes to obtain resources/services from a third-party provider. In particular, resources may not be available at the time of the request (an example is obtaining a VPN connection from a third party network provider which takes approximately two days).
3. The process of provisioning aggregated resources from a set of basic resources is time consuming. In particular, operations such as installation of software and operating systems, and data management operations are time consuming and may take several hours to complete.
4. In case of resource contention, resources may need to be de-allocated from other running SEs; the process involves deconstruction of aggregated resources and returning the basic resources to their respective free pools before they can be used for the new SE. Typical operations may include disk scrubbing to satisfy a security policy.